package com.conasinf.sofia.model;
// Generated 14/03/2014 05:30:19 PM by Hibernate Tools 3.6.0

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

/**
 * TMarcaciones generated by hbm2java
 */
@Entity
@Table(name = "t_marcaciones", schema = "public"
)
public class TMarcaciones implements java.io.Serializable {

    private int id;
    private TTerceros TTerceros;
    private THuellas THuellas;
    private TTerminal TTerminal;
    private Date marcacion;
    private boolean esIngreso;
    private String usuario;
    private String diaSemana;

    public TMarcaciones() {
    }

    public TMarcaciones(int id, TTerceros TTerceros, THuellas THuellas, TTerminal TTerminal, Date marcacion, boolean esIngreso, String usuario) {
        this.id = id;
        this.TTerceros = TTerceros;
        this.THuellas = THuellas;
        this.TTerminal = TTerminal;
        this.marcacion = marcacion;
        this.esIngreso = esIngreso;
        this.usuario = usuario;
    }

    @Id

    @Column(name = "id", unique = true, nullable = false)
    public int getId() {
        return this.id;
    }

    public void setId(int id) {
        this.id = id;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "id_tercero", nullable = false)
    public TTerceros getTTerceros() {
        return this.TTerceros;
    }

    public void setTTerceros(TTerceros TTerceros) {
        this.TTerceros = TTerceros;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "id_huella", nullable = false)
    public THuellas getTHuellas() {
        return this.THuellas;
    }

    public void setTHuellas(THuellas THuellas) {
        this.THuellas = THuellas;
    }

    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "id_terminal", nullable = false)
    public TTerminal getTTerminal() {
        return this.TTerminal;
    }

    public void setTTerminal(TTerminal TTerminal) {
        this.TTerminal = TTerminal;
    }

    @Temporal(TemporalType.TIMESTAMP)
    @Column(name = "marcacion", nullable = false, length = 35)
    public Date getMarcacion() {
        return this.marcacion;
    }

    public void setMarcacion(Date marcacion) {
        this.marcacion = marcacion;
    }

    @Column(name = "es_ingreso", nullable = false)
    public boolean isEsIngreso() {
        return this.esIngreso;
    }

    public void setEsIngreso(boolean esIngreso) {
        this.esIngreso = esIngreso;
    }

    @Column(name = "usuario", nullable = false)
    public String getUsuario() {
        return this.usuario;
    }

    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }

    public String getEntrada() {
        if (this.esIngreso) {
            return new SimpleDateFormat("Y-MM-dd hh:mm:ss a").format(this.marcacion);
        }
        return "";
    }

    public String getSalida() {
        if (!this.esIngreso) {
            return new SimpleDateFormat("Y-MM-dd hh:mm:ss a").format(this.marcacion);
        }
        return "";
    }

    public String getDiaSemana() {
        String[] dias = {"Domingo", "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado"};
        GregorianCalendar cal = new GregorianCalendar();
        cal.setTime(this.getMarcacion());
        return dias[cal.get(Calendar.DAY_OF_WEEK)];
    }

}
